home *** CD-ROM | disk | FTP | other *** search
Makefile | 1993-06-20 | 7.4 KB | 286 lines |
- # Hack or Quest Makefile.
- # SCCS Id: @(#)Makefile.unix 2.3 87/12/12
-
- #
- # In config.h, define "UNIX", "SYSV", and "TERMINFO".
- #
- # Also, "typedef short int" for schar and uchar.
- #
-
- # if you are cross-compiling (eg. from Xenix into a Dos enviornment)
- # you will have to redefine these filenames.
- MAIN = unixmain.c
- TTY = unixtty.c
- UNIX = unixunix.c
-
- # flags may have to be changed as required
- CFLAGS = -O
- LFLAGS =
-
- # on some systems the termcap library is in -ltermcap
- TERMLIB = -ltermlib
- LLIBS = -lmalloc
-
- # make NetHack
- GAME = nethack
- GAMEUID = games
- GAMEGRP = bin
-
- # GAMEDIR also appears in config.h as "HACKDIR".
- GAMEDIR = /usr/games/lib/$(GAME)dir
- SHELLDIR = /usr/games
- MANDIR = /usr/man/man6
- MANEXT = 6
-
- HACKCSRC = alloc.c apply.c bones.c cmd.c decl.c do.c do_name.c do_wear.c\
- dog.c dogmove.c dothrow.c eat.c end.c engrave.c fight.c fountain.c\
- hack.c invent.c ioctl.c lev.c main.c makemon.c mhitu.c\
- mklev.c mkmaze.c mkobj.c mkshop.c mon.c monmove.c monst.c o_init.c\
- objnam.c options.c pager.c polyself.c potion.c pray.c pri.c\
- prisym.c read.c rip.c rnd.c rumors.c save.c search.c shk.c shknam.c\
- sit.c spell.c steal.c termcap.c timeout.c topl.c topten.c track.c\
- trap.c tty.c u_init.c unix.c vault.c version.c wield.c wizard.c\
- worm.c worn.c write.c zap.c
-
- CSOURCES = $(HACKCSRC) makedefs.c
-
- HSOURCES = config.h date.h edog.h eshk.h extern.h flag.h func_tab.h\
- gen.h gold.h hack.h mfndpos.h mkroom.h monst.h msdos.h\
- obj.h objclass.h objects.h onames.h permonst.h rm.h\
- spell.h trap.h wseg.h you.h
-
- SOURCES = $(CSOURCES) $(HSOURCES)
-
- SPECIFICS = main.o tty.o unix.o
- AUX = help hh nethack.6 nethack.sh
- VARAUX = data rumors
-
- DISTR = $(SOURCES) $(AUX) $(VARAUX) README.OLD README\
- Makefile Makefile.pc Make.ini
-
- HOBJ = alloc.o apply.o bones.o cmd.o decl.o do.o do_name.o do_wear.o\
- dog.o dogmove.o dothrow.o eat.o end.o engrave.o fight.o fountain.o\
- hack.o invent.o ioctl.o lev.o main.o makemon.o mhitu.o\
- mklev.o mkmaze.o mkobj.o mkshop.o mon.o monmove.o monst.o o_init.o\
- objnam.o options.o pager.o polyself.o potion.o pray.o pri.o\
- prisym.o read.o rip.o rnd.o rumors.o save.o search.o shk.o shknam.o\
- sit.o spell.o steal.o termcap.o timeout.o topl.o topten.o track.o\
- trap.o tty.o u_init.o unix.o vault.o version.o wield.o wizard.o\
- worm.o worn.o write.o zap.o
-
- $(GAME): $(SPECIFICS) $(HOBJ) Makefile
- @echo "Loading ..."
- @cc $(LFLAGS) -o $(GAME) $(HOBJ) $(TERMLIB) $(LLIBS)
-
- all: $(GAME) Guidebook lint
- @echo "Done."
-
- Guidebook: Guidebook.mn
- nroff -mn Guidebook.mn > Guidebook
-
- makedefs: makedefs.c alloc.o config.h
- cc ${CFLAGS} -o makedefs alloc.o makedefs.c
-
- RUMORFILES= rumors.base rumors.kaa rumors.mrx
-
- rumors: config.h $(RUMORFILES) makedefs
- ./makedefs -r
-
- data: config.h data.base makedefs
- ./makedefs -d
-
- date.h: $(SOURCES) makedefs
- ./makedefs -D
-
- trap.h: config.h makedefs
- ./makedefs -t
-
- onames.h: makedefs objects.h
- ./makedefs -o
-
- main.o:
-
- main.c: unixmain.c hack.h
- cp $(MAIN) main.c
-
- tty.o:
-
- tty.c: unixtty.c hack.h func_tab.h
- cp $(TTY) tty.c
-
- unix.o:
-
- unix.c: unixunix.c hack.h mkroom.h
- cp $(UNIX) unix.c
-
- lint:
- # lint cannot have -p here because (i) capitals are meaningful:
- # [Ww]izard, (ii) identifiers may coincide in the first six places:
- # doweararm() versus dowearring().
- # _flsbuf comes from <stdio.h>, a bug in the system libraries.
- @echo lint -axbh -DLINT ...
- @lint -axbh -DLINT $(HACKCSRC) | sed '/_flsbuf/d'
-
-
- diff:
- @- for i in $(SOURCES) $(AUX) ; do \
- cmp -s $$i $D/$$i || \
- ( echo diff $D/$$i $$i ; diff $D/$$i $$i ; echo ) ; done
-
- distribution: Makefile
- @- for i in READ_ME $(SOURCES) $(AUX) Makefile date.h onames.h\
- ; do \
- cmp -s $$i $D/$$i || \
- ( echo cp $$i $D ; cp $$i $D ) ; done
- # the distribution directory also contains the empty files perm and record.
-
- initial:
- -rm -rf $(GAMEDIR)
- -mkdir $(SHELLDIR)
- mkdir $(GAMEDIR) $(GAMEDIR)/save
- touch $(GAMEDIR)/perm
- touch $(GAMEDIR)/record
- touch $(GAMEDIR)/logfile
- chown $(GAMEUID) $(SHELLDIR)/$(GAME) $(GAMEDIR) $(GAMEDIR)/*
- chgrp $(GAMEGRP) $(SHELLDIR)/$(GAME) $(GAMEDIR) $(GAMEDIR)/*
- chmod 666 $(GAMEDIR)/*
- chmod 777 $(GAMEDIR) $(GAMEDIR)/save
-
- install: $(VARAUX) $(GAME)
- -mkdir $(GAMEDIR)
- -mkdir $(GAMEDIR)/save
- -rm -f $(GAMEDIR)/$(GAME)
- -rm -f $(GAMEDIR)/bones* $(GAMEDIR)/alock* $(GAMEDIR)/wizard*
- -rm -f $(GAMEDIR)/save/*
- touch $(GAMEDIR)/perm $(GAMEDIR)/record
- cp help hh rumors data $(GAMEDIR)
- cp $(GAME).sh $(SHELLDIR)/$(GAME)
- cp $(GAME) $(GAMEDIR)/$(GAME)
- chown $(GAMEUID) $(SHELLDIR)/$(GAME) $(GAMEDIR)/*
- chgrp $(GAMEGRP) $(SHELLDIR)/$(GAME) $(GAMEDIR)/*
- chmod 0755 $(SHELLDIR)/$(GAME)
- chmod 04755 $(GAMEDIR)/$(GAME)
- -cp nethack.6 $(MANDIR)/$(GAME).$(MANEXT)
-
- debug:
- ln $(GAMEDIR)/$(GAME) a.out
- ln $(GAMEDIR)/core core
-
- tags: $(SOURCES)
- @echo ctags -tw ...
- @ctags -tw $(SOURCES)
-
- clean:
- rm -f *.o
-
- spotless: clean
- rm -f a.out core $(GAME) makedefs
- rm -f Makefile $(VARAUX) main.c tty.c unix.c
-
- depend:
- # For the moment we are lazy and disregard /usr/include files because
- # the sources contain them conditionally. Perhaps we should use cpp.
- # ( /bin/grep '^#[ ]*include' $$i | sed -n \
- # -e 's,<\(.*\)>,"/usr/include/\1",' \
- #
- for i in ${CSOURCES}; do \
- ( /bin/grep '^#[ ]*include[ ]*"' $$i | sed -n \
- -e 's/[^"]*"\([^"]*\)".*/\1/' \
- -e H -e '$$g' -e '$$s/\n/ /g' \
- -e '$$s/.*/'$$i': &/' -e '$$s/\.c:/.o:/p' \
- >> makedep); done
- for i in ${HSOURCES}; do \
- ( /bin/grep '^#[ ]*include[ ]*"' $$i | sed -n \
- -e 's/[^"]*"\([^"]*\)".*/\1/' \
- -e H -e '$$g' -e '$$s/\n/ /g' \
- -e '$$s/.*/'$$i': &\
- touch '$$i/p \
- >> makedep); done
- @echo '/^# DO NOT DELETE THIS LINE/+2,$$d' >eddep
- @echo '$$r makedep' >>eddep
- @echo 'w' >>eddep
- @cp Makefile Makefile.bak
- ed - Makefile < eddep
- @rm -f eddep makedep
- @echo '# DEPENDENCIES MUST END AT END OF FILE' >> Makefile
- @echo '# IF YOU PUT STUFF HERE IT WILL GO AWAY' >> Makefile
- @echo '# see make depend above' >> Makefile
- - diff Makefile Makefile.bak
- @rm -f Makefile.bak
-
- # DO NOT DELETE THIS LINE
-
- decl.o: hack.h mkroom.h
- apply.o: hack.h edog.h mkroom.h
- bones.o: hack.h
- hack.o: hack.h
- cmd.o: hack.h func_tab.h
- do.o: hack.h
- do_name.o: hack.h
- do_wear.o: hack.h
- dog.o: hack.h edog.h mkroom.h
- dogmove.o: hack.h mfndpos.h edog.h mkroom.h
- dothrow.o: hack.h
- eat.o: hack.h
- end.o: hack.h
- engrave.o: hack.h
- fight.o: hack.h
- fountain.o: hack.h mkroom.h
- invent.o: hack.h wseg.h
- ioctl.o: config.h
- lev.o: hack.h mkroom.h wseg.h
- makemon.o: hack.h
- mhitu.o: hack.h
- mklev.o: hack.h mkroom.h
- mkmaze.o: hack.h mkroom.h
- mkobj.o: hack.h
- mkshop.o: hack.h mkroom.h eshk.h
- mon.o: hack.h mfndpos.h
- monmove.o: hack.h mfndpos.h
- monst.o: hack.h eshk.h
- o_init.o: config.h objects.h onames.h
- objnam.o: hack.h
- options.o: hack.h
- pager.o: hack.h
- polyself.o: hack.h
- potion.o: hack.h
- pray.o: hack.h
- pri.o: hack.h
- prisym.o: hack.h wseg.h
- read.o: hack.h
- rip.o: hack.h
- rumors.o: hack.h
- save.o: hack.h
- search.o: hack.h
- shk.o: hack.h mfndpos.h mkroom.h eshk.h
- shknam.o: hack.h
- sit.o: hack.h
- spell.o: hack.h
- steal.o: hack.h
- termcap.o: hack.h
- timeout.o: hack.h
- topl.o: hack.h
- topten.o: hack.h
- track.o: hack.h
- trap.o: hack.h edog.h mkroom.h
- u_init.o: hack.h
- vault.o: hack.h mkroom.h
- wield.o: hack.h
- wizard.o: hack.h
- worm.o: hack.h wseg.h
- worn.o: hack.h
- write.o: hack.h
- zap.o: hack.h
- version.o: hack.h date.h
- extern.h: config.h spell.h obj.h
- touch extern.h
- hack.h: extern.h flag.h gold.h monst.h objclass.h rm.h trap.h you.h
- touch hack.h
- objects.h: config.h objclass.h
- touch objects.h
- you.h: config.h onames.h permonst.h
- touch you.h
- # DEPENDENCIES MUST END AT END OF FILE
- # IF YOU PUT STUFF HERE IT WILL GO AWAY
- # see make depend above
-